import {reqCategoryList, reqGetBannerList,reqFloorList} from "@/api";
// vuex的home模块，配置state、mutations、actions、getters关键词
const state = {
    //state中数据默认初始值不要乱写，服务端返回的是数组，我们就设置成数组，数据的类型不一样，使用的方法也不一样
    categoryList: [],
    //轮播图的数据
    bannerList:[],
    // floor组件的数据
    floorList:[]
};
const mutations = {
    CATEGORYLIST(state,categoryList){
        state.categoryList = categoryList;
    },
    GETBANNERLIST(state,getBannerList){
        state.bannerList = getBannerList;
    },
    GETFLOORLIST(state,floorList){
        state.floorList = floorList;
    }
};
const actions = {
    //通过api里面的接口函数调用(封装的axios管理的api请求)，向服务器发请求，获取服务器的数据
    // 解构出context的commit
    // 利用async与await的配合，直接拿到promise的成功或失败的值，判断是否交给mutations处理
    async categoryList({commit}){
        let result = await reqCategoryList();
        if(result.code == 200){
            commit('CATEGORYLIST',result.data);
        }
    },
    //获取首页轮播图的数据
    async getBannerList({commit}){
        //成功或失败值
        let result = await reqGetBannerList();
        if(result.code == 200){
            commit('GETBANNERLIST',result.data);
        }
    },
    // 获取floor数据
    async getFloorList({commit}){
        let result = await reqFloorList();
        if(result.code == 200){
            //提交mutation
            commit("GETFLOORLIST",result.data);
        }
    }
};
//计算属性
const getters = {};
export default {
    // namespaced:true,
    state,
    mutations,
    actions,
    getters
}